package com.credithc.customers.api.service;


import com.credithc.customers.base.ro.*;

import java.util.Map;

/**
 * @Title: 客户信息维护
 * @Author: Denghx
 * @Date: 2018/12/3 0:39
 * @Description: com.credithc.customers.api.service
 * @Version: V1.0.0
 */
public interface ICustomerInfoService {
    /**
     * @description: 接收业务三要素变更记录
     * @author: denghx
     * @date: 2018/12/3 11:28
     * @param: request
     * @return: java.util.Map<java.lang.String       ,       java.lang.String>
     */
    Map<String, Object> bizModify(BaseRequest<BizModifyRo> request);

    /**
     * 客户角色关系新增
     *
     * @description:
     * @author: denghx
     * @date: 2018/12/3 11:29
     * @param: request
     * @return: void
     */
    void customerRelation(BaseRequest<CustomerRelationRo> request);

    /**
     * @description: 客户三要素校验查询
     * @author: denghx
     * @date: 2018/12/3 11:29
     * @param: request
     * @return: java.util.Map<java.lang.String       ,       java.lang.String>
     */
    Map<String, Object> queryThreeElements(BaseRequest<ThreeElementsRo> request);

    /**
     * @description: 客户基本信息查询
     * @author: denghx
     * @date: 2018/12/3 16:44
     * @param: request
     * @return: java.util.Map<java.lang.String       ,       java.lang.String>
     */
    Map<String, Object> getCustomerInfo(BaseRequest<CustomerQueryRo> request);

    /**
     * 增加客户信息
     * @param request request
     * @return map
     */
    Map<String,String> addCustomerInfo(BaseRequest<CustomerInfoAddRo> request);

    /**
     * @description: 客户账户信息查询
     * @author: denghx
     * @date: 2018/12/9 20:41
     * @param: request
     * @return: java.util.Map<java.lang.String   ,   java.lang.Object>
     */
    Map<String, Object> queryAccount(BaseRequest<CustomerAccountRo> request);

    /**
     * @description: 语音客服机器人自助查询
     * @author: fby
     * @date: 2019/7/8 15:43
     * @param: request
     * @return: java.util.Map<java.lang.String       ,       java.lang.Object>
     */
    Map<String, Object> byMobileAndId(BaseRequest<CustomerQuerySubRo> bRequest);
}
